# 使用官方 Hive 3.1.3 镜像作为基础镜像
FROM apache/hive:3.1.3

# 切换到 root 用户以便安装软件包
USER root

# 安装必要工具
RUN apt-get update && \
    apt-get install -y \
      net-tools \
      netcat \
      telnet \
      default-mysql-client \
      iputils-ping && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# 删除slf4j日志冲突
RUN rm -rf /opt/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar

# 创建 .beeline和tmp 目录并设置权限
RUN mkdir -p /home/hive/.beeline /home/hive/tmp && \
    chown -R hive:hive /home/hive
    
# session目录授权
RUN mkdir -p /tmp/hive && \
    chmod -R 1777 /tmp/hive

# 创建持久化目录用于存储初始化标志（在容器内部）
RUN mkdir -p /var/lib/hive-metastore && \
    chown -R hive:hive /var/lib/hive-metastore && \
    chmod -R 755 /var/lib/hive-metastore

RUN mkdir -p /user/hive/warehouse /tmp/hive_scratch /tmp/hive_local_scratch /tmp/hive_resources && \
    chmod -R 777 /user/hive/warehouse /tmp/hive_scratch /tmp/hive_local_scratch /tmp/hive_resources

# 复制自定义入口脚本
COPY entrypoint.sh /opt/hive/bin/entrypoint.sh
RUN chmod +x /opt/hive/bin/entrypoint.sh && \
    chown hive:hive /opt/hive/bin/entrypoint.sh

# 切换回 hive 用户
USER hive

# 使用自定义入口脚本
ENTRYPOINT ["/opt/hive/bin/entrypoint.sh"]
